/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.viajaconmigo.web.controladores;

import com.viajaconmigo.error.UsuarioNoExisteException;
import com.viajaconmigo.model.Usuario;
import com.viajaconmigo.service.UsuarioService;
import com.viajaconmigo.web.controladores.util.JSFUtil;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;

import java.io.Serializable;
import javax.enterprise.context.SessionScoped;
import javax.inject.Inject;
import javax.inject.Named;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
//import javax.annotation.ManagedBean;

/**
 *
 * @author Pablo
 */
@Named("usuarioSesion")
@SessionScoped
public class UsuarioController extends ParentController implements Serializable {
    
    private final static Logger logger = LoggerFactory.getLogger(UsuarioController.class);

    private String nick;
    private String password;

    private boolean login;
    private Usuario usuario;
    private UIComponent mybutton;

    @Inject
    private UsuarioService usuarioService;

    /**
     * Creates a new instance of UsuarioController
     */
    public UsuarioController() {
        login = false;
    }

    public String getNick() {
        return nick;
    }

    public void setNick(String nick) {
        this.nick = nick;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public boolean isLogin() {
        return login;
    }

    public void setLogin(boolean login) {
        this.login = login;
    }

    public Usuario getUsuario() {
        return usuario;
    }

    public UIComponent getMybutton() {
        return mybutton;
    }

    public void setMybutton(UIComponent mybutton) {
        this.mybutton = mybutton;
    }

    public String doLogin() {
        String ret = "index";
        try {
            usuario = usuarioService.abrirSesion(nick, password);
            login = true;           
            ret = "menupage";
        } catch (UsuarioNoExisteException e) {
            login = false;
            JSFUtil.createMessageError(mybutton.getClientId(FacesContext.getCurrentInstance()), "incorrectdata");
            logger.info("Error. El usuario no existe en el sistema.{},{}",nick,password,e);
        } catch (RuntimeException e) {
            JSFUtil.createMessageError("", "error_general");
            logger.error("Se he producido un error en la operación de Login",e);
        }
        return ret;
    }

    public String goRegistro() {
        return "registro";
    }
}
